/*	Brian Kirkpatrick
	String Tree class
	Begun 6/23/2010
*/

#ifndef STRING_TREE_H
#define STRING_TREE_H

#include <string>
#include <stdio.h>
using std::string;

enum TreeType { TT_UNKNOWN, TT_ELEMENT, TT_ATTRIBUTE, TT_VALUE, TT_TEXT, TT_COMMENT, TT_DECLARATION };

class stringTree {
	private:
		TreeType type;
		string value;
		stringTree * child;
		stringTree * next;
	protected:
	public:
		stringTree();
		stringTree(string v);
		stringTree(string v, TreeType t);
		~stringTree();
		string getValue();
		void setValue(string s);
		TreeType getType();
		void setType(TreeType t);
		void print();
		void addChild(stringTree * c);
		void addSibling(stringTree * s);
		int numChildren();
		stringTree * getChild();
		stringTree * getNext();
};

#endif 
